C函数及指针学习2
1.break 永久终止循环,continue 结束当前循环
char x;
int a;
a=x=y+3;
y+3 的值赋给a, a为char 类型或截断
a=x;可能会出现精度损失
#include <stdio.h>
#include<math.h>
void main()
{
int a,b,c;
char d;
printf("sizeof int %d\n",sizeof(int));
printf("szieof char %d\n",sizeof(char));
b=pow(2,5);
c=pow(2,5);
a=b*c;
printf("a=b*c %d,%d,%d \n",a,b,c);
d=b*c;
printf("d=b*c %d,%d,%d \n",d,b,c);
a=d=b*c;
printf("a=d=b*c %d,%d,%d \n",a,b,c);
}
char ch;
while((ch=getchar())!=EOF)
{
//EOF需要的位数比char 多,
//getchar()返回 int 类型,
ch=getchar()会截断
在不同的机器中循环会有不同的效果。
}
a=a+5,a+=5;
a[f(x)]=a[f(x)]+1;
a[f(x)]+=1;
#include <stdio.h>
#include<math.h>
int func()
{
static a=0;
printf("func run for %d time \n",a);
a++;
return a;
}
void main()
{
int i;
int b[4]={1,2,3,6};
b[func()]+=1;//b[1]_=1;func运行了一次
for(i=0;i<4;i++)
{
printf("%d ",b[i]);
}
printf("\n");
b[func()]=b[func()]+1;//b[3=b[2]+1],func 运行了两次
for(i=0;i<4;i++)
{
printf("%d ",b[i]);
}
printf("\n");
}
sizeof( int )
sizeof(x)
int a[8];
szieof(a);
double a[8];
sizeof(a)
int a=1;int b=1;
sizeof(a=b+1)//运行完后 a=1 ,不会进行运算
#include <stdio.h>
#include<math.h>
void main()
{
int a,d,e,f;
char b[4]={1,2,3,6};
double c[4]={1,2,3,4};
e=1;
f=0;
a=sizeof(b);
printf("sizeof b %d \n",a);
d=sizeof(c);
printf("sizeof c %d \n",d);
sizeof(f=e+1);
printf("f= %d\n",f);
}
指针的sizeof为 4 (32位软件中)
#include <stdio.h>
#include<math.h>
void main()
{
double (*fun)();
int a,d,e,g,x,y,z;
double *h;
double f;
char b[4]={1,2,3,6};
double c[3]={1,2,3};
double* (*s)[3][6];
e=1;
f=0;
h=c;
a=sizeof(b);//数组,返回数组所占的字节数 4*1=4
printf("sizeof b %d \n",a);
d=sizeof(c);//数组,返回数组所占的字节数 3*8=24
printf("sizeof c-> %d \n",d);
x=sizeof (h);//指针,即地址,32位软件中 地址为4字节
printf("sizeof h -> %d\n",x);
//h和c 比较
y=sizeof (*h);
printf("y= %d\n",y);//指针的元素,double 8字节
g=sizeof (fun);//指针,即地址,32位软件中 地址为4字节
printf("g= %d\n",g);
//double* (*s)[3][6];
//s为指针,指针指向2维数组,二维数组中存放的是指针
printf("s -> %d\n",sizeof(s));//指针 4
printf("*s -> %d\n",sizeof(*s));//整个数组 18个元素,每个元素为指针 3*6*4=72
printf("**s -> %d\n",sizeof(**s));//数组的一维 6个元素 6*4=24
printf("***s -> %d\n",sizeof(***s));//第一个元素,为指针 4
printf("****s -> %d\n",sizeof(****s));//指针所指的数,double 8
}
为什么:
d=sizeof(c);//数组,返回数组所占的字节数 3*8=24
printf("sizeof c-> %d \n",d);
x=sizeof (h);//指针,即地址,32位软件中 地址为4字节
printf("sizeof h -> %d\n",x);
//h和c 比较
为什么差别这么大。
char a.b.c;
a=b*c;
int a,b;
long c;
c=a*b;
根据优先级 先 a*b 为返回int 类型,c=a*b,将int 类型转化成 long 赋值给c
c=(long)a*b;
a 从 int转化成 long ,b和a两个操作数之间 a的类型比较高,b转化成long ,a*b 返回 long ,赋值给 c9
&& || 具有短路求值特性
C函数及指针学习2的更多相关文章
- C函数及指针学习1
1 大段程序注释的方法 #if 0#endif 2三字母词 以两个问号 开始的都要注意 3 字面值(常量) 在整型号字面值后加 字符L (long),U(unsigned)说明字符常量 为长整型 或( ...
- c 函数及指针学习 10
标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...
- c 函数及指针学习 9
指针的高级应用 处理命令行参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main(int ar ...
- c 函数及指针学习 7
1.结构的存储分配 1 2 printf("%d \n",sizeof(char)); printf("%d \n",sizeof(int)); int 类型为 ...
- c 函数及指针学习 5
聚合数据类型 能够同时存储超过一个的单独数据. c语言提供了数组和结构体. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> # ...
- c 函数及指针学习 4
1数组和指针声明的差别 声明数组:为数组分配内存,为数组名分配内存(指针常量 4个字节) 指针:为指针分配内存(指针变量 4个字节) 1 2 3 4 5 6 7 8 9 10 #include < ...
- c 函数及指针学习 3
strlen(x) 返回 size_t 类型,size_t是 unsigned int 类型,所以 strlen(x)-strlen(y) 返回 unsigned int 始终 >=0 1 2 ...
- c 函数及指针学习 8
联合体 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> union sa { double a; int b; ...
- c 函数及指针学习 6
不完整声明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* 方法一 */ struct tag_a{ ...
随机推荐
- SQlServer 从系统表 sysobjects 中获取数据库中所有表或存储过程等对象
[sysobjects] 一.概述 系统对象表. 保存当前数据库的对象,如约束.默认值.日志.规则.存储过程等,该表中包含该数据库中的表 存储过程 视图等所有对象 在sqlserver2005,sql ...
- java中利用JFrame创建窗体 【转】
1. 一个简单的swing public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame ...
- 模拟iOS系统原生导航条隐藏或显示动画
借UIView动画,使更改导航条的hidden属性这一过程动起来.悦德财富:https://yuedecaifu.com 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- Android-LogCat日志工具(一)
LogCat : Android中一个命令行工具,可以用于得到程序的log信息. 就像你知道一个人的日志.航程,你可以无时无刻知道一个人在干什么. 而LogCat , 就是程序的日志.通过日志,你可以 ...
- Java选择结构、循环结构
1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; ...
- php无缝连接滚动
最近用到了,仿照别人的写了一个 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- 使用Dmitry Sklyarov的方法来破解一款流行的4G调制解调器
逆向工程师如果对设备代码和固件系统进行检测时,发现了许多经过加密处理的固件文件,该怎么办?在本文中我将通过一个真实的故事来教大家如何利用一些基础的计算机知识以及简单的逻辑来应对这一问题. 因为这篇文章 ...
- Detail in Response.redirect and Server.transfer in ASP.NET
http://www.developerfusion.com/article/4643/implementing-http-handlers-in-aspnet/4/
- apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName的解决
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ...
- C# delegate & event
public delegate void MyDelegate(string mydelegate);//声明一个delegate对象 //实现有相同参数和返回值的函数 public v ...