Лекции: Лекция по си++
Описание
Характеристики лекций
Список файлов
- лекция по си++.txt 1,85 Kb
int *pa; - создание адреса
pa = &a; - Присвоение адреса
cout << pa; просмотр адреса
*pb = *pa; - присвоение адресов
Массивы и указатели
int a[10]; - пределение массива
имя массива являеться адресом
присвоение адресов массиву
A ==&a[0]
A+1 ==&a[1]
A+2 ==&a[2]
...
A+n ==&a[n]
формулы:
1) a+i == &a[i]
2) a[i] == *(a+i)
-------------------------------
int *a[10]; - массив адресов
int B[10][5];
b[0] = &b[0][0]
b[1] = &b[1][0]
b[n] = &b[n][0]
b[i]+j = &b[i][j]
Массивы символов и строки
char A[6]={'a','b','c','d'} -определения массива символов
если в конце массива символов стоит \0 то массив являеться строкой
если нет черты ноль, то вывод массива только с адресом массива
cout << A; = ABCDLF)R*$YTHN
char *A="ABC"; - создание строки с последним символо \0
char *a[2] = {"ABC", "ABCDEF"} - создание массива строк - массив указателей
где a[2][7] = {'a','b','c','\0','a','b','c','\0'}
если подключить stringh
srtlen(a) == 3
sizeof(a) == 4 где АВС + \0
B=B+A - такое сложение строк невыполнимо в СИ, для этого используется функция копирования строк strcat(B,A)
которая складывает строки и записывает результат в строку B
------------
Функции
Процедур в си нету
int f(int a,int b){return(A+B)}
cout<< f(2,33);
--------------------------
int A[10]
main();
{int a[10];
//ввод эл массива
int Sum(int B[10])
{ int s=0;
for(int i=0; i<10,i++)
s=s+B[i];
return S;}
cout<< Sum(a);
!!При создании пустой функции, которая ничего не возвращает в начале пришеться слово void!!
адреса в функциях
int Sum(int *B)
{ int s=0;
for(int i=0; i<10,i++)
s=s+*(B+i); или S=S+B[i];
//если добавить след строку то измениться сам массив (умножиться на 2)
*(b+i)=*(B+i)*2 или B[i]=b[i]*2
return S;}
cout<< Sum(a);
Начать зарабатывать