基础知识朝花夕拾1

数组

int a[] = {0};
//a代表数组首元素的地址,即数组元素类型,是常量指针
//&a,代表整个数组的地址,即数组类型
//数组类型
typedef int(MyInt)[5] ; 
//下面的两个一样的
MyInt arrayint array[5];
&array + 1 ;//直接跳整个数组步长
//定义指向数组类型的指针变量
MyInt* pArray = &array;
array[i] = i;
//同理
(*pArray )[i] = i;
//直接定义数组指针类型
typedef int(*pMyArray)[5];
pMyArray myP = NULL;
(*myP)[i] = i ;
//strcpy(),strchr();
//#include 
//#include 
int main(void)
{
    char string[17];
    char *ptr,c='r';
    strcpy(string,"Thisisastring");
    ptr=strchr(string,c);
    if(ptr)
        printf("The character %cis at position:%s\n",c,ptr);
    else
        printf("The character was not found\n");
    return 0;
}
运行结果:
The character r is at position: ring
//array+1的步长为[5]*变量字节
//array名就是指向一维数组的指针
int array[3][5];
int (*p)[5] = {0};
p = array;
//但无论几维数组,实参传到形参都会退化成指针,但你要告诉编辑器
//跳的格子数
//多维数组做形参,二维可勉强表达出来 int Fuc1(int a[][5]或int (*a)[5]);
//三维,四维就不行了即参数的有效内存维数只到2级
//sprintf格式化数据格式输入到字符串中,返回buffer字符数
{
   char  buffer[200], s[] = "computer", c = 'l';
   int   i = 35, j;
   float fp = 1.7320534f;
   // 格式化并打印各种数据到buffer
   j  = sprintf( buffer,    "   String:    %s\n", s ); // C4996
   j += sprintf( buffer + j, "   Character: %c\n", c ); // C4996
   j += sprintf( buffer + j, "   Integer:   %d\n", i ); // C4996
   j += sprintf( buffer + j, "   Real:      %f\n", fp );// C4996

   printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}

Output:
String: computer 
  
Character: l
Integer: 35
Real: 1.732053
character count = 79

基础知识朝花夕拾1_第1张图片

注意临时内存片是返回不出来的,要malloc或new.
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
char str[]=”1234xyz”;
char *str1=strstr(str,”34”);
cout << str1 << endl;
显示的是: 34xyz

你可能感兴趣的:(面试准备)