ch3-PointersAndBrackets in C/C++
Chapter_3 Exercise_3-20 ArrayIdentifier | ArrayArguments Exercise_3-21 |
PointersAndBrackets TCP1, p. 199 (pointers_brackets.c, PointersAndBrackets.cpp)
pointers_brackets.c download
#include <stdio.h> // for printf(), putchar()
void printArray(int a[], char* name, int size);
int main()
{
int i, a[5];
int* ip = a;
for(i = 0; i < 5; i++)
{ip[i] = i * 10;}
printArray(a, "a", 5);
printArray(ip, "ip", 5); // a
// a = 0; // compile error: assignment to expression with array type
ip = 0; // null pointer
printArray(a, "a", 5); // not changed
// printArray(ip, "ip", 5); // run-time error: Segmentation fault (core dumped)
int b[5];
// a = b; // compile error: assignment to expression with array type
ip = b;
for(i = 0; i < 5; i++)
{ip[i] = i * 20;}
printArray(a, "a", 5); // not changed
printArray(b, "b", 5);
printArray(ip, "ip", 5); // b
return 0;
}
void printArray(int a[], char* name, int size)
{
int i;
for(i = 0; i < size; i++)
{printf("%s[%d] = %d, ", name, i, a[i]);}
putchar('\n');
}
/*
gcc pointers_brackets.c -o pointers_brackets
./pointers_brackets
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
ip[0] = 0, ip[1] = 10, ip[2] = 20, ip[3] = 30, ip[4] = 40,
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
b[0] = 0, b[1] = 20, b[2] = 40, b[3] = 60, b[4] = 80,
ip[0] = 0, ip[1] = 20, ip[2] = 40, ip[3] = 60, ip[4] = 80,
*/
Note: See Exercise_3-18 amd ch3-ArrayArguments for the function printArray().
PointersAndBrackets.cpp download
#include <iostream>
#include <string>
using std::string;
using std::cout;
using std::endl;
void printArray(int a[], string name, int size);
int main()
{
int a[5];
int* ip = a;
for(int i = 0; i < 5; i++)
{ip[i] = i * 10;}
printArray(a, "a", 5);
printArray(ip, "ip", 5); // a
// a = 0; // compile error: incompatible types in assignment of int to int[]
ip = 0; // null pointer
printArray(a, "a", 5); // not changed
// printArray(ip, "ip", 5); // run-time error: Segmentation fault (core dumped)
int b[5];
// a = b; // compile error: invalid array assignment
ip = b;
for(int i = 0; i < 5; i++)
{ip[i] = i * 20;}
printArray(a, "a", 5); // not changed
printArray(b, "b", 5);
printArray(ip, "ip", 5); // b
return 0;
}
void printArray(int a[], string name, int size)
{
for(int i = 0; i < size; i++)
{cout << name << "[" << i << "] = " << a[i] << ", ";}
cout << endl;
}
/*
g++ PointersAndBrackets.cpp -o PointersAndBrackets
./PointersAndBrackets
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
ip[0] = 0, ip[1] = 10, ip[2] = 20, ip[3] = 30, ip[4] = 40,
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
a[0] = 0, a[1] = 10, a[2] = 20, a[3] = 30, a[4] = 40,
b[0] = 0, b[1] = 20, b[2] = 40, b[3] = 60, b[4] = 80,
ip[0] = 0, ip[1] = 20, ip[2] = 40, ip[3] = 60, ip[4] = 80,
*/
Chapter_3 Exercise_3-20 ArrayIdentifier | BACK_TO_TOP | ArrayArguments Exercise_3-21 |
Comments
Post a Comment