c语言中*p++,*(++p)的问题

c语言中*p++,*(++p)的问题,第1张

p++ 先取指针p指向的值(数组第一个元素1),再将指针p自增1;

(p)++ 先去指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2

++p 先将指针p自增1(此时指向数组第二个元素), *** 作再取出该值

++p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2)

1、这个数字的值本身是保存在变量n里,如果说要获取输出的十六进制结果,实际上是一个字符串,获取这个结果可以使用

sprintf

输出到字符串。

2、例程:

#include <stdioh>

int main(void){

int n = 256;

char s[100];

sprintf(s, "%0x", n);

}

C语言有2个获取时间的函数,分别是time()和localtime(),time()函数返回unix时间戳-即从1970年1月1日0:00开始所经过得秒数,而localtime()函数则是将这个秒数转化为当地的具体时间(年月日时分秒)

这里时间转化要用到一个“struct tm”的结构体,结构如下:

struct tm {

int tm_sec;       / 秒 – 取值区间为[0,59] /

int tm_min;       / 分 - 取值区间为[0,59] /

int tm_hour;      / 时 - 取值区间为[0,23] /

int tm_mday;     / 一个月中的日期 - 取值区间为[1,31] /

int tm_mon;     / 月份(从一月开始,0代表一月) - 取值区间为[0,11] /

int tm_year;     / 年份,其值等于实际年份减去1900 /

int tm_wday;    / 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 /

int tm_yday;    / 从每年1月1日开始的天数– 取值区间[0,365],其中0代表1月1日 /

int tm_isdst;    / 夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0 / 

};

示例代码:

#include<stdioh>

#include<timeh>

int getTime()

{

time_t t;                   //保存unix时间戳的变量 ,长整型

struct tm lt;           //保存当地具体时间的变量

int p;                     

time(&t);                // 等价于 t =time(NULL);获取时间戳

lt = localtime(&t);  //转化为当地时间

p = lt->tm_sec;     //将秒数赋值给p

return p;

}

应该就是这样啦~

这个需要相关的库以及API。

给你一个获取cpu信息的函数:

DWORD MyCPUSpeed()

{

BSTR bstrMyCpuName=NULL;

BSTR bstrMyPropName = NULL;

VARIANT pVal;

char szText[256];

int nCpuNum=0;

DWORD dwCpuSpeed=0;

IWbemClassObject pCpuInst=NULL;

IWbemQualifierSet pQualSet = NULL;

bstrMyPropName = SysAllocString(L"CurrentClockSpeed");

if(bstrMyPropName == NULL)

{

return dwCpuSpeed;

}

while(1)

{

memset(szText,0,sizeof(szText));

sprintf(szText,"Win32_ProcessorDeviceID=\"CPU%d\"", nCpuNum);

bstrMyCpuName = _bstr_t(szText);

if(bstrMyCpuName == NULL)

{

break;

}

if(pSvc->GetObject(bstrMyCpuName, 0L, NULL, &pCpuInst, NULL) != S_OK)

{

break;

}

if(pCpuInst->Get(bstrMyPropName, 0L, &pVal, NULL, NULL) == S_OK)

{

nCpuNum++;

dwCpuSpeed += pVallVal;

}

VariantClear(&pVal);

SysFreeString(bstrMyCpuName);

bstrMyCpuName = NULL;

}

if(bstrMyPropName != NULL)

{

SysFreeString(bstrMyPropName);

bstrMyPropName = NULL;

}

if(bstrMyCpuName != NULL)

{

SysFreeString(bstrMyCpuName);

bstrMyCpuName = NULL;

}

memset(szText,0,sizeof(szText));

sprintf(szText, "CPU个数: %d, CPU频率: %ld Mhz", nCpuNum, dwCpuSpeed);

cout<<"------------------------"<<szText<<"-------------------------"<<endl;

return dwCpuSpeed;

}

以上就是关于c语言中*p++,*(++p)的问题全部的内容,包括:c语言中*p++,*(++p)的问题、C语言中怎么获取printf输出的值、C语言如何获取本地时间,然后取时、分、秒的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9668156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存