我创建了一个2D数组,并尝试打印某些值,如下所示:
int a[2][2] = { {1, 2},
{3, 4}};
printf("%d %d\n", *(a+1)[0], ((int *)a+1)[0]);
Run Code Online (Sandbox Code Playgroud)
输出是:
3 2
Run Code Online (Sandbox Code Playgroud)
我理解为什么3是第一个输出(a+1指向第二行,我们打印它的0th元素.
我的问题是关于第二个输出,即2.我的猜测是,由于类型转换a为int *,所述2D阵列像一维数组进行处理,并且因此a+1充当指向2nd元素,所以我们得到的输出作为2.
我的假设是正确的还是背后还有其他一些逻辑?
另外,原来什么是a被当作指针int (*)[2]或int **?的类型?
我正在检查AlarmManager是否已使用此答案设置了警报.
以下是我的代码段.
boolean alarmUp = (PendingIntent.getBroadcast(MainActivity.this, 0,
new Intent(MainActivity.this, AlarmReceiver.class), PendingIntent.FLAG_NO_CREATE) != null);
if (alarmUp) {
// alarm is set; do some stuff
}
Intent alarmIntent = new Intent(MainActivity.this, AlarmReceiver.class);
final PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10 * 1000, pendingIntent);
Run Code Online (Sandbox Code Playgroud)
但是,alarmUp始终设置为true.也就是说,无论我是否设置闹钟,每当我重新启动我的应用时,它都会告诉我这alarmUp是真的(我通过制作一个来检查它Toast).
请帮助我出错的地方.
我正在从纪元时间(UTC时间)转换为如下所示的格式。现在,我尝试了不同的答案SO转换UTCDate从UTC本地时间。但是我没有当地时间。
任何帮助,将不胜感激。
String epochTime = "1436831775043";
Date UTCDate = new Date(Long.parseLong(epochTime));
Date localDate; // How to get this?
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mm a");
String result = simpleDateFormat.format(UTCDate);
Run Code Online (Sandbox Code Playgroud)
另外,转换必须在没有任何外部库帮助的情况下完成。
对于以下代码:
void fun(char *msg, int n, int m, ...) {
va_list ptr;
va_start(ptr, m); // Question regarding this line
printf("%d ", va_arg(ptr, int));
}
Run Code Online (Sandbox Code Playgroud)
该函数调用如下:
fun("Hello", 3, 54, 1, 7);
Run Code Online (Sandbox Code Playgroud)
我的问题是关于上面评论的那一行.我尝试了该行的以下三个版本:
va_start(ptr, msg);
va_start(ptr, n);
va_start(ptr, m);
Run Code Online (Sandbox Code Playgroud)
在所有三种情况下,我得到"1"作为输出.根据我的阅读,第二个参数va_start应该是函数参数列表中的最后一个参数fun(),即va_start(ptr, m);应该是正确的调用.那么为什么我在这三种情况下得到相同的输出.
[我在Ideone上运行程序,如果这有任何后果.]
我最近遇到了以下代码:
unsigned short int a = 0xffff;
~a;
printf("%x", a);
Run Code Online (Sandbox Code Playgroud)
它的输出是:
0xffff
Run Code Online (Sandbox Code Playgroud)
根据我所学到的,~a应该翻转给出以下内容的所有内容:
0x0000
Run Code Online (Sandbox Code Playgroud)
那么,为什么输出0xffff呢?
对于以下代码:
char a[] = "Apple";
char *s[] = {"Apple"};
printf("%d %d\n", sizeof(a), sizeof(s[0]));
Run Code Online (Sandbox Code Playgroud)
输出是:
6 4
Run Code Online (Sandbox Code Playgroud)
有人能告诉我为什么sizeof()给出不同的输出?
编辑:我原本打算打字sizeof(),但输入strlen().我为此道歉.我现在已经编辑了这个声明.
我是JavaScript的新手.完整代码在这里(无法在问题的主体中输入jQuery).
以下是代码的JS部分
$(document).ready(function(){
$("#btn1").click(function(){
var newtext = $("<b>It works!</b>");
newtext.hide();
$("p").append(newtext);
newtext.fadeIn();
});
});
Run Code Online (Sandbox Code Playgroud)
我打算做的是,当用户点击按钮("#btn1")时,一段新文本("It works!")应出现在HTML 的每个 <p>元素的末尾.但是当我运行代码时,文本仅被添加到最后一个 <p>元素.也就是说,如果您从上面的链接打开源代码,您将看到有两个<p>元素.但是"它有效!" 文本仅附加到第二个文本.
如何在每个 <p>元素的末尾添加此文本?
我有一个link_to如下所示:
<td><%= link_to '<span class="glyphicon glyphicon-trash"></span>Delete it'.html_safe, post, method: :delete, data: {confirm: 'Are you sure?'}, class: 'btn btn-danger btn-lg white' %></td>
Run Code Online (Sandbox Code Playgroud)
如你所见,我已经添加了一个"白色"类.它的目的是定义一个CSS,使白色按钮中的文本"删除它"的颜色.CSS如下:
.white {
color: white;
background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
问题是除了"color"之外的所有选项在CSS中都能正常工作.例如,在上述情况下,"背景颜色"工作正常,但"颜色"不工作.文本的颜色永远不会改变(保持默认 - 黑色).
我不知道我哪里出错了.我该如何解决这个问题?