我是靠谱客的博主 聪明吐司,最近开发中收集的这篇文章主要介绍基础知识朝花夕拾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 <string.h>
//#include <stdio.h>
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:%sn",c,ptr);
    else
        printf("The character was not foundn");
    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:    %sn", s ); // C4996
   j += sprintf( buffer + j, "   Character: %cn", c ); // C4996
   j += sprintf( buffer + j, "   Integer:   %dn", i ); // C4996
   j += sprintf( buffer + j, "   Real:      %fn", fp );// C4996

   printf( "Output:n%sncharacter count = %dn", buffer, j );
}

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

内存模型图

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

最后

以上就是聪明吐司为你收集整理的基础知识朝花夕拾1的全部内容,希望文章能够帮你解决基础知识朝花夕拾1所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部