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

Popular posts from this blog

Contents