C语言

2021-03-31(指针)

2021-03-31  本文已影响0人  张轻舟

地址:
内存地址是连续存放着的,地址是一
指针(变量):存放地址的容器/指向地址的变量
int a;
int *p;//定义一个存放整型变量的p,int *是定义
p=&a;
int b;
char [20];
printf("%d %#x\n",&a,&a);//输出的&a和p一样
printf("%d %#x\n",p,p);
printf("%d %#x\n",c,c);
//三十二位环境下指针所有类型都是四个字节


指针存放的地址上的值 p
printf("%d %#x\n",p,
p);


指针的运算
int a =10;
int b=20;
int p=&a;
printf("%d %d %d %d\n"&a,&b,p,(p-1),
(p-1));
return 0;

image.png

一个指针加一减一移位大小是以它指向类型大小


int a[10]={1,2,3,4,5,6,7,8,9,0}
int p;
p=a;
for(i=0;i<10;i++)
{
printf("%d",
p);
p++;
}

image.png

char str[200]="string";
char p2;
p=&a[0];
p2=str;
for(i=0;i<strlen(str);i++)
{
printf("%c",
p2);
p2++;
}


输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

include<stdio.h>

int main()
{
int letter = 0,number = 0,blank = 0,others = 0,c;
int p;
p=&c;
while((
p = getchar()) != '\n'){
if(*p >= 'A' && *p<='Z' || *p >= 'a' && p <= 'z')
letter++;
else if(
p >= '0' && p <= '9')
number++;
else if(
p == ' ')
blank++;
else
others++;
}
printf("%d %d %d %d\n",letter,number,blank,others);
return 0;
}


int rev(char a[]//char *a,int b[],int *c)
{
printf("%s\n",a);
return 0;
}
int main()
{
char str[200]="nice";
int a[100]={1,2,3,4,5};
int x;
rev(str,a,&x);
return 0 ;
}


//##sizeof 求字节内存大小
int a;
b=sizeof(a);

输出int、char、float、double、long long这五种数据类型的占字节数,空格隔开,共占一行

#include<stdio.h>

int main()

{

    int a;

    a=sizeof(int);//特别注意的是sizeof返回类型都是int 型

    printf("%d\n",a);

    //char w;

    a=sizeof(char);

    printf("%d\n",a);

   // float f;

    a=sizeof(float);

    printf("%d\n",a);

   // double d;

    a=sizeof(double);

    printf("%d\n",a);

   // long long i;

    a=sizeof(long long);

    printf("%d\n",a);

    return 0;

}
image.png

若一个正整数从左向右读与从右向左读都一样,我们就将其称之为回文数(例如12321、44、3都是回文数)。输入一个正整数,判断它是否是回文数,是则输出YES,否则输出NO。(提示:以字符串形式读取输入的整数)


#include <stdio.h>

#include <string.h>

int main()

{

int i,n,j=1;

char a[1000];

gets(a);                       //输入字符串

n=strlen(a);                //计算字符长度

for(i=0;i<n/2;i++)      //将字符串分半

{

if(a[i]!=a[n-i-1])         //分半后前一个不等于后一个就输出NO

{

   printf("NO");

   j=0;                        

   break;                    //跳出循环

}

}

if(j)                          // 如果j不等于0就输出YES

printf("YES");

return 0;

}

MessageBox(0,"","",0);
//##字符串比较大小函数strcmp
char str[100]="word";
char str2[100]="world";
int a;
a=strcmp(str,str2);
printf("%d\n",a);
return 0;
//相等的时候为零
单个字符的ASCII相比较

上一篇 下一篇

猜你喜欢

热点阅读